package save_http_picture

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
	"os"
)

// var path = "C:/Users/wangk/Desktop/go_auto/tmp/"
// 写入文件
func SaveHttpResource(url string, path string) error {

	// 发送 GET 请求
	resp, err := http.Get(url)
	if err != nil {
		return fmt.Errorf("error: %v", err)
	}
	defer resp.Body.Close()

	// 判断状态码
	if resp.StatusCode != 200 {
		err := fmt.Errorf("error: the page %s is %v", url, resp.StatusCode)
		fmt.Println(err)
		return err
	}

	// 读取图片内容
	data, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("Error: %v\n", err)
		return err
	}

	// 将图片内容写入文件
	err = ioutil.WriteFile(path, data, os.ModePerm)
	if err != nil {
		fmt.Printf("Error: %v\n", err)
		return err
	}

	fmt.Printf("【下载图片】：%s : %s完成\n", url, path)
	return nil
}

// 读取接口json
func GetURLJson(url string) (map[string]interface{}, error) {
	resp, err := http.Get(url)
	if err != nil {
		return nil, fmt.Errorf("fetch: %v", err)
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return nil, fmt.Errorf("fetch: reading %s: %v", url, err)
	}

	// 返回内容转为json
	body_data := make(map[string]interface{})
	err = json.Unmarshal([]byte(body), &body_data)
	if err != nil {
		return nil, fmt.Errorf("unmarshal: %v", err)
	}
	return body_data, nil
}
